iT邦幫忙

2025 iThome 鐵人賽

DAY 14
0
Security

江湖在走,數位憑證要懂,懂得天天吃滷肉飯系列 第 14

第14天,實作S/MIME封裝的數位簽章 / 享之饌台南虱目魚(台北中正)| 30天滷肉飯

  • 分享至 

  • xImage
  •  

S/MIME (Secure/Multipurpose Internet Mail Extensions) 是一種電子郵件安全標準,基於 PKCS#7 / CMS,能夠為郵件提供 數位簽章加密
在實務上,S/MIME 常見於:

  • 政府單位或企業內部的安全郵件
  • 郵件簽章與驗證寄件人身份
  • 郵件加密,保護隱私與敏感資訊

其中「數位簽章」能確保:

  1. 郵件內容 未被竄改
  2. 確認寄件人 身份
  3. 確保郵件的 完整性

S/MIME 數位簽章原理

  1. 發信者用 私鑰 對郵件內容產生數位簽章
  2. 將簽章與 憑證 一起封裝進郵件(PKCS#7 格式)
  3. 收信者用憑證中的 公鑰 驗證簽章
  4. 若簽章比對成功,確定內容未被竄改,且發信者身份可信

用 OpenSSL 建立 S/MIME 簽章

假設我們有一個郵件原文檔案 mail.txt

產生簽章(S/MIME 格式)

openssl smime -sign -in document.txt \
  -signer cert.pem -inkey private.key \
  -out signed_mail.eml -outform SMIME

這會產生一個 S/MIME 簽章郵件signed_mail.eml),其中包含:

  • 郵件內容
  • 簽章值
  • 憑證(用來讓收件者驗簽)

驗證簽章

openssl smime -verify -in signed_mail.eml -inform SMIME -noverify

成功會輸出原始郵件內容。若郵件被竄改,會出現驗證錯誤。


範例輸出

openssl smime -sign 產生的檔案會長這樣,裡面會把PKCS7當作附件部分,就可以拿來驗簽。

MIME-Version: 1.0
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg="sha-256"; boundary="----F585C540A9C01DC66E646772D6F39AB0"

This is an S/MIME signed message

------F585C540A9C01DC66E646772D6F39AB0
123
------F585C540A9C01DC66E646772D6F39AB0
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"

MIIGGgYJKoZIhvcNAQcCoIIGCzCCBgcCAQExDzANBglghkgBZQMEAgEFADALBgkq
...

------F585C540A9C01DC66E646772D6F39AB0--

可以看到郵件內容與簽章一併包裝在 multipart/signed 格式。


小結

這一篇我們學會了:

  1. S/MIME 的概念與用途
  2. 使用 OpenSSL 建立與驗證 S/MIME 簽章
  3. S/MIME 郵件範例格式(multipart/signed

S/MIME 提供一個完整的郵件安全解決方案,除了數位簽章,還能進一步做到郵件加密。

享之饌站前店 台南虱目魚

  • 店名:享之饌站前店 台南虱目魚
  • 地址:台北市中正區南陽街15-3號1樓
  • 營業時間:每日 11:00–20:30
  • Google Maps
  • 本系列地圖

https://ithelp.ithome.com.tw/upload/images/20250928/20163416XeIPOH1gLh.jpg

這家在台北有多家分店,雖然今年上過不好的新聞,不過滷肉飯還不錯,虱目魚也好吃


上一篇
第13天,實作PKCS#7封裝的數位簽章 / 雙月食品社(台北中正)| 30天滷肉飯
系列文
江湖在走,數位憑證要懂,懂得天天吃滷肉飯14
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言